Skip to main content

Creating/Updating Metadata Using ZDK CLI

The zdk meta:create {type} command is used to create supported metadata. The supported metadata are:

For updating the supported metadata, locate the corresponding JSON file and update it.

MetadataFormat of the JSON file namePath of the JSON file
Profiles{profile_api_name}.profiles-meta.json{ZDK-Project-Name}/crm/meta/profiles
Roles{role_api_name}.roles-meta.json{ZDK-Project-Name}/crm/meta/roles
Modules{module_api_name}.modules-meta.json{ZDK-Project-Name}/crm/meta/modules/{module-api-name}
Fields{field_api_name}.fields-meta.json{ZDK-Project-Name}/crm/meta/modules/{module-api-name}/fields
Layouts{layout_api_name}.layouts-meta.json{ZDK-Project-Name}/crm/meta/modules/{module-api-name}/layouts
Widgets{widget_api_name}.widgets-meta.json{ZDK-Project-Name}/crm/meta/widgets
Instead of running the zdk meta:create {type} command, you have the option to create new metadata by manually creating a JSON file with the filename following the above mentioned format in the corresponding path. For widgets with internal hosting, ensure that you create the directory {ZDK-Project-Name}/crm/widgets/{widget_api_name} and copy your existing widget logic there.

Profiles

Use the zdk meta:create profiles command to create a new profile.

 

zdk meta:create profiles

zdk meta:create profiles command executed in terminal

This command creates the file Employee.profiles-meta.json in the path {ZDK-Project-Name}/crm/meta/profiles.

When creating a new profile in ZDK CLI, inputs: name, API name, and description of the profile are provided explicitly, while the remaining attributes are inherited from the administrator profile.
ResourceInputs required during createModifiable fields
Profiles
  • name of the profile
  • apiName of the profile
  • description of the profile.
  • name
  • description
  • "enabled" property of a permission

Roles

Use the zdk meta:create roles command to create a new role.

 

zdk meta:create roles

zdk meta:create roles command executed in terminal

This command creates the file Executive.roles-meta.json in the path {ZDK-Project-Name}/crm/meta/roles.

ResourceInputs required during createModifiable fields
Roles
  • name of the role
  • apiName of the role
  • description of the role
  • the existing role to which the new role will be reporting to.
  • name
  • description
  • forecast_manager
  • share_with_peers
  • reporting_to

Modules

Use the zdk meta:create modules command to create a new module. 

 

zdk meta:create modules

zdk meta:create modules command executed in terminal

This command creates the file student.modules-meta.json in the path {ZDK-Project-Name}/crm/meta/modules/student.

ResourceInputs required during createModifiable fields
Modules
  • Singular label of the module
  • Plural label of the module
  • API name of the module
  • List of profiles that are associated with the module
  • profiles
  • singular_label
  • sequence_number
  • plural_label

Fields

Use the zdk meta:create fields command to create a new field.

 

zdk meta:create fields

zdk meta:create fields command executed in terminal

This command creates the file student_name.fields-meta.json in the path {ZDK-Project-Name}/crm/meta/modules/student/fields.

ResourceInputs required during createModifiable fields
Fields
  • apiName of the module in which you need the new field to be created
  • name of the field
  • apiName of the field
  • data type of the field
  • field_label
  • length
  • profile_permissions
  • hipaa_compliance_enabled (applicable when hipaa compliance is enabled)
  • private (applicable when gdpr is enabled)
  • crypt
  • unique
  • tooltip
  • decimal_place (for data type specific properties)
  • currency
  • auto_number(data type: autonumber)
  • lookup (data type: lookup)
  • pick_list_values(data type: multiselectpicklist, picklist)

Layouts

Use the zdk meta:create layouts command to create a new layout.

 

zdk meta:create layouts

zdk meta:create layouts command executed in terminal

This command creates the file basic.layouts-meta.json in the path {ZDK-Project-Name}/crm/meta/modules/Leads/layouts.

When creating a new layout in ZDK CLI, inputs: name of the module for which layout is created, name and API name of the layout, and list of profiles to be associated with the layout are given explicitly, while the remaining attributes are inherited from the default layout of the module.
ResourceInputs required during createModifiable fields
Layouts
  • Name of the module for which layout is created
  • Name of the layout
  • API name of the layout
  • List of profiles to be associated with the layout
  • profile_properties
  • status
  • name
  • "name" property of a sections array
  • "sequence_number" property of a sections array
  • "tab_traversal" property of a sections array
  • "column_count" property of a sections array
  • "field" property of a section_fields array of a sections array
  • "sequence_number" property of a section_fields array of a sections array

     

Widgets

Use the zdk meta:create widgets command to create widgets.

 

zdk meta:create widgets

zdk meta:create widgets command executed in terminal : choice for widget type

zdk meta:create widgets command executed in terminal : choice for hosting type

zdk meta:create widgets command executed in terminal

This command creates the file calendar.widgets-meta.json in the path {ZDK-Project-Name}/crm/meta/widgets.

For widgets with internal hosting, a new folder will be created in crm/widgets/{widget_api_name} where you can develop widgets using ZET CLI. If you want to update the logic of an existing internal widget, modify the content of widget.html. You can also modify the contents of json file for internal and external widgets. For more details on working with widgets in ZDK CLI, refer to the Working with widgets page, and for more details about widget in general, refer to our help document on widgets.

ResourceInputs required during createModifiable fields
Widgets
  • name of the widget
  • api name of the widget
  • description of the widget
  • type of the widget ( Web tab, Related list, Custom button, Settings, Home page dashboard, Wizard, Blueprint)
  • hosting type (Internal, External)
  • base url in case hosting type is external
  • start_url
  • description
  • active
  • base_url(editable in external widgets)
  • name
  • mobile_compatible( for widget types - Web tab, Related list, Custom button, Wizard, and Blueprint)
When updating supported metadata in ZDK CLI, attempting to modify a non-modifiable field in the corresponding JSON file will not apply the changes, even if a success message is displayed. Only the fields that are modifiable and have been changed will be updated during the metadata update process.